/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package datos;

/**
 *
 * @author MAS-NATURAL
 */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.swing.JOptionPane;

public class Log
{
  private File archivo;
  private FileReader lector;
  private BufferedReader entrada;
  private FileWriter escritor;
  private PrintWriter salida;

  public Log(String linea)
  {
    String log_file = "jchecador.log";

    this.archivo = new File(log_file);

    if (this.archivo.exists())
      modificarArchivo(log_file, linea);
    else
      crearArchivo(log_file, linea);
  }

  public void crearArchivo(String path, String linea)
  {
    try
    {
      this.archivo = new File(path);
      this.escritor = new FileWriter(this.archivo);
      this.salida = new PrintWriter(this.escritor);
      linea = obtenerHora() + " @ " + linea;
      this.salida.println(linea);
      this.salida.close();
      this.escritor.close();
    } catch (IOException e) {
      JOptionPane.showMessageDialog(null, "Ocurrio un error al crear el log \n " + e, "Error en log", 0);
    }
  }

  public void modificarArchivo(String path, String linea)
  {
    try
    {
      int index = 0;
      int i = 0;
      this.lector = new FileReader(this.archivo);
      this.entrada = new BufferedReader(this.lector);
      while (this.entrada.readLine() != null) {
        index++;
      }
      this.entrada.close();
      this.lector.close();
      String[] arr = new String[index + 1];
      this.lector = new FileReader(this.archivo);
      this.entrada = new BufferedReader(this.lector);
      for (i = 0; i < index; ) {
        arr[i] = this.entrada.readLine();
        i++;
      }
      linea = linea + " @ " + obtenerHora();
      arr[i] = linea;
      this.entrada.close();
      this.lector.close();
      this.archivo = new File(path);
      this.escritor = new FileWriter(this.archivo);
      this.salida = new PrintWriter(this.escritor);
      for (int j = 0; j <= index; j++) {
        this.salida.println(arr[j]);
      }
      this.salida.close();
      this.escritor.close();
    } catch (IOException e) {
      JOptionPane.showMessageDialog(null, "Ocurrio un error al crear el log \n " + e, "Error en log", 0);
    }
  }

  public String obtenerHora()
  {
    String res = "";
    Calendar c = Calendar.getInstance();
    int year = c.get(1);
    int month = c.get(2) + 1;
    int day = c.get(5);
    int hour = c.get(10);
    int min = c.get(12);
    int seg = c.get(13);
    res = day + "/" + month + "/" + year + "  " + hour + ":" + min + ":" + seg;
    return res;
  }
}
